#ifndef __INPUTEVENT_H__
#define __INPUTEVENT_H__

#include <SFML/Window.hpp>

enum INPUT_EVENT_TYPE { PRESSED_EVENT_TYPE,
                        TRIGGERED_PRESSED_EVENT_TYPE,
                        RELEASED_EVENT_TYPE,
                        TRIGGERED_RELEASED_EVENT_TYPE,
                        INVALID_EVENT_TYPE };


enum INPUT_TYPE { KEYBOARD_INPUT_TYPE,
                  MOUSE_INPUT_TYPE,
                  INVALID_INPUT_TYPE };


struct InputEvent
{
	InputEvent();
	InputEvent(const INPUT_EVENT_TYPE iet,const sf::Key::Code key);
	InputEvent(const INPUT_EVENT_TYPE iet, const sf::Mouse::Button button);
	bool operator==(const InputEvent &e);
	
	INPUT_TYPE inputType;
	INPUT_EVENT_TYPE inputEventType;
	
	union 
	{
		sf::Key::Code keyCode;
		sf::Mouse::Button mouseButton;
	};
};

#endif /* __INPUTEVENT_H__ */

